package com.sjm.suchbear.easymap.Service;

import com.sjm.suchbear.easymap.Model.FinishModel;
import com.sjm.suchbear.easymap.Model.LoginModel;
import com.sjm.suchbear.easymap.Model.PatrolListModel;
import com.sjm.suchbear.easymap.Model.RiverGoModel;
import com.sjm.suchbear.easymap.Model.TaskModel;
import com.sjm.suchbear.easymap.Model.TraceModel;
import com.sjm.suchbear.easymap.Model.UpdateModel;
import com.sjm.suchbear.easymap.Model.UploadModel;


import java.util.Map;

import okhttp3.RequestBody;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.PartMap;
import retrofit2.http.Query;
import rx.Observable;

/**
 * Created by Suchbear on 2018/3/16.
 */

public interface iHttpService {
    @GET("doLogin")
        //测试账号 ally  密码1234
    Observable<LoginModel> doLogin(@Query("name") String name, //用户名
                                   @Query("password") String password//密码
    );

    @GET("getTasks")
        //获取任务列表
    Observable<TaskModel> getTasks(@Query("userId") String userId //用户名
    );

    @GET("getPatrolId")
        // 日常巡河
    Observable<RiverGoModel> getPatrolIdbynomal(@Query("userId") String userId //用户名
    );

    @GET("getPatrolId")
        // 任务巡河
    Observable<RiverGoModel> getPatrolIdbytask(@Query("userId") String userId, //用户名
                                               @Query("taskId") String taskId
    );

    @GET("updatePatrol")
        // 更新坐标
    Observable<UpdateModel> updatePatrol(@Query("userId") String userId, //用户名
                                         @Query("patrolId") String patrolId,
                                         @Query("lng") String lng,
                                         @Query("lat") String lat
    );

    @GET("getPatrolInfo")
        // 获得巡查记录
    Observable<TraceModel> getPatrolInfo(//@Query("userId") String userId, //用户名
                                         @Query("patrolId") String patrolId
    );

    @GET("finishPatrol")
        // 巡河结束
    Observable<FinishModel> finishPatrol(//@Query("userId") String userId, //用户名
                                         @Query("patrolId") String patrolId
    );

    @GET("getPatrolList")
        // 获取巡河列表
    Observable<PatrolListModel> getPatrolList(@Query("userId") String userId//用户名
    );

    @FormUrlEncoded
    @POST("uploadPicAndComments")
        //上传评论
    Observable<UploadModel> uploadComments(@Field("fileType") String fileType,//文件类型 comments
                                           @Field("comments") String comments,
                                           @Field("patrolId") String patrolId
    );

    @FormUrlEncoded
    @POST("uploadPicAndComments")
        //上传图片
    Observable<UploadModel> uploadPic(@Field("fileType") String fileType,//文件类型 image
                                      @Field("imgStr") String imgStr,
                                      @Field("fileName") String fileName,
                                      @Field("patrolId") String patrolId
    );

    @Multipart
    @POST("uploadMedia")
        //上传视频
    Observable<UploadModel> uploadMedia(@PartMap Map<String, RequestBody> map
    );

}
